package cn.iocoder.devlop.module.annual.report.utils;

import cn.hutool.core.date.DateUtil;

import java.util.Date;
import java.util.Optional;

/**
 * 表名年份帮助类
 *
 * @author Euan
 * @since 2024/1/22
 */
public class ReportYearHelper {

    private static final ThreadLocal<Integer> yearThreadLocal = new ThreadLocal<>();

    public static void setYear(int inputYear){
        yearThreadLocal.set(inputYear);
    }

    public static int getStartYear() {
        // 这个数值从线程中获取,默认值当前年份
        int year = Optional.ofNullable(yearThreadLocal.get()).orElse(DateUtil.year(new Date())-1);
        return getStartYear(year);
    }

    public static int getStartYear(int inputYear) {
        // 设定基准年份为2013
        int baseYear = 2013;

        // 计算输入年份与基准年份的差值
        int diff = inputYear - baseYear;

        // 计算对应的十年份，使用整除和乘法来确定
        // 例如，如果输入年份是2023，那么diff为10，得到的结果就是2013 + (10/10)*10 = 2023
        return baseYear + (diff / 10) * 10;
    }

}
